import type { AxiosRequestConfig } from "axios";
// 请求内容类型
export type TContentType = "json" | "form-data" | "form-data-file";

// 后台请求地址接口
export interface IUrlParams {
  // 默认后台请求地址
  baseUrl: string;
}

// 请求参数
export interface IRequestParams {
  // 请求主体类型
  contentType?: TContentType;
  // 请求配置
  config?: AxiosRequestConfig;
  // 销毁函数
  cancelToken?: (callback: () => void) => void;
}

// 分页参数
export interface IPaginationParams {
// 每页条数
  pageSize: number;
  // 当前页
  currPage: number;
}

// 响应分页
export interface IPaginationApi extends IPaginationParams {
  // 总条数
  count: number;
}

// 响应数据
export interface IResponseData<T> {
  // 响应状态码
  code: string | number;
  // 响应中的数据
  data?: T;
  // 响应消息
  msg: string;
  // 响应状态
  status: string | number;
  // 分页
  page?: IPaginationApi;
}
